iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
自我挑戰組

自我挑戰Ruby系列 第 22

Day 22 - 方法2

  • 分享至 

  • xImage
  •  

方法的命名

命名的方式如同區域變數命名的方式一樣,小寫字首開頭為主,

且以蛇形式(snake_case):每個單字皆為小寫,每個空白以底線取代,來表達。

驚嘆號的方法

其實也可以使用驚嘆號(!)加入於方法的命名內,但只能在方法名字的最後面而已。

驚嘆號通常表示這個方法會令人驚訝或可能有副作用,

或是這方法需要注意,驚嘆號的方法會永久改變作用對象本身的內容,

所以在使用前,應該要確保自己是否想要這樣的效果。

例如:

arr = [1, 3, 1, 6, 2]
arr.sort!

使用sort! 就會將原本陣列的元素直接排序[1, 1, 2, 3, 6],也會永久更動成這個順序。

問號的方法

其實也可以使用問號(?)加入於方法的命名內,但只能在方法名字的最後面而已。

問號通常表示,詢問這個方法後,回傳的值會是true或是false。

例如:

def is_hot?(temperature)
   temperature >= 40
end  '

像藉由send(:is_hot?,70) 可以得到結果是true。

模組化

通常我們不會想把所有程式都想在同一個檔案裡,會想在不同檔案裡,

將檔案讀進來,我們會藉由require(引入)或load(載入)進來。

require '/~~~.rb'

load '/~~~.rb'

例如:require '/Users/fix.rb' 或 load '/Users/fix.rb'

require與load的差異:

(1)require不一定需要使用副檔名,但load一定需要副檔名。

(2)使用require很多次,但內容只會有一次;而load很多次,load幾次就會載入幾次。

Day 22 結語

今天藉由方法的命名,也了解到Ruby內建的方法中的驚嘆號以及問號結尾的方法之差異。

也了解到可以藉由require或load將之前寫好在別的檔案內的方法之程式碼讀取進來,

這樣就不用再重寫一遍,也讓程式碼內比較乾淨,淺顯易懂。


上一篇
Day 21 - 方法1
下一篇
Day 23 - 區塊1
系列文
自我挑戰Ruby30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言